The present invention relates to a remote execution system having a program receiver.
A conventional remote execution system having a program receiver (called "server system" hereinafter) is located at a remote place and is used for executing a requested processing, as appearing, for example, in "UNIX Network Programming", Chapter 14, July, 1992.
One example of a conventional remote execution system of this kind is shown in FIG. 1 wherein a server system 315 comprises an execution control section 352 and a command execution section 353.
The execution control section 352 can control UNIX commands during a remote execution, and the command execution section 353 can execute the UNIX commands transmitted from a client system C1 as a request transmission source. In FIG. 1, although only one client system C1 is shown, usually a plurality of client systems C1 to Ck (k=any positive integer) are connected to the server system 315.
FIG. 2 shows a conventional agent system having a delegation device (called "agent system" hereinafter) in a network management, to which the foregoing conventional remote execution system having a program receiver is applied, as disclosed in, for example, "Network Management by Delegation The MAD Approach", by German Goldszmidt et al., IBM Research Report, RC 17256 (#76343), April, 1991. This agent system is used in order to reduce the cost of communication between manager systems and agent systems and the load given to the manager systems in a centralized network management which has been performed conventionally.
In FIG. 2, the conventional agent system 3601 comprises an agent kernel 3602, delegated management process instances (called "DMPIs" hereinafter) D1 and D2 for implementing scripts of management tasks to be executed by the agent system 3601 (delegated management programs (called "DMPs" hereinafter)). and managed object resource controllers C01, C02 and C03 connected to managed object resources 01, 02 and 03. In this case, although two DMPIs D1 and D2, three managed object resource controllers C01, C02 and C03 and three managed object resources 01, 02 and 03 are shown in FIG. 2, in fact, a plurality of DMPIs D1 to Dk, a plurality of managed object resource controllers C01 to C0m (m=any positive integer) and a plurality of managed object resources 01 to 0m are present.
The DMPIs D1 and D2 carry out the management tasks described in the DMPs. The managed object resource controllers C0, C02 and C03 provide means to access to the actual managed object resources 01, 02 and 03. The agent kernel provides a delegation system and includes a delegation protocol processing means 3603, a delegation information storage 3604, a DMP converter 3605, a control means 3606, a DMPI controller 3607, a schedule controller 3608, a name determiner 3609 and an interprocess communicator 3610.
The delegation protocol processing means 3603 receives the DMPs and DMPI control commands sent from manager systems M1, M2 and M3, allow the delegation information storage 3604 to store the DMPs, and transmits the execution results of the DMPIs D1 and D2 and the control commands to the manager systems M1, M2 and M3. Although the three manager systems M1, M2 and M3 are shown in FIG. 2, in fact, a plurality of manager systems M1 to Mm can be used. The DMPs output from the manager systems M1, M2 and M3 include source codes written in the C or C.sup.++ language and object codes obtained by their compilation.
The DMPI controller 3607 performs the input DMP as a light weight process, controls the DMPIs D1 and D2, and transmits the operation results of the DMPIs D1 and D2 to the delegation protocol processing means 3603. The DMPI controller 3607 can execute control commands such as a suspend, a stop and a resume for the DMPIs D1 and D2.
The control means 3606 produces all the components 3603 to 3610 of the agent kernel 3602 to initialize the agent system 3601 when the agent system is loaded into memory, initiates the DMPs to be executed from the initiation time of the agent system 3601 as the DMPIs D1 and D2, carries out the postprocessing such as a release of the memory when terminating the agent system 3601, and manages the agent system 3601 itself such as the processing method requested by the manager systems M1, M2 and M3.
The DMP converter 3605 converts the DMPs transmitted from the manager systems M1, M2 and M3 into their executable codes. That is, the input DMPs written in C or C.sup.++ are converted into the executable object codes using a compiler or a linker in the DMP converter 3605.
In the aforementioned prior arts, the first problem is that it is difficult to execute a series of processing having a complicated control configuration including branches and repeats. This is because the prior arts aim to execute UNIX commands in the server system in the same manner as those given on a shell as an interface between a user and a UNIX operating system in a client system.
The second problem is that the user must understand the mountings and the practical usage of the server system in advance. The reason is as follows. That is, when the command is executed in the server system, as shown in FIG. 1, the command execution section 353 produces a new UNIX process and this process becomes the shell to run the requested command. At this time, the command name transmitted from the client system C1 is transferred to the shell as it is. Hence, when such a command is not present on a command retrieval path, no command execution can be performed.
Moreover, when the foregoing conventional remote execution system having a program receiver is applied to an agent system in a network management, the following third to eighth problems to be solved arise.
The third problem is that a management information storage (called "MIS" hereinafter) is not considered in the agent system 3601 shown in FIG. 1. This reason is that an open systems interconnection (called "OSI" hereinafter) is not considered at all.
The fourth problem is that the agent system 3601 is not provided with a common management operating means for the managed object resources 01, 02 and 03. This is because the managed object resource controllers C01, C02 and C03 provide the means to allow the DMPIs D1 and D2 to access to the actual managed object resources 01, 02 and 03, and correspond to the managed object resources 01, 02 and 03, respectively.
When there are a plurality of managed object resources 01 to 0m, a plurality of managed object resource controllers C01 to C0m are arranged so as to access to the respective managed object resources 01 to 0m directly using respective management operating manners.
The fifth problem is that, when the DMPs are described in the agent system 3601, this makes a load heavy for a supervisor to describe. The reason is that the DMPIs D1 and D2 access to the necessary managed object resource controllers C01, C02 and C03 directly, and in the case of the access to a plurality of managed object resources 01, 02 and 03, the description is required to change depending on the respective management operating manners of the managed object resources 01, 02 and 03.
The sixth problem is that the communication amount between the manager systems M1, M2 and M3 and the agent system 3601 becomes enormous. The reason is as follows. That is, since the DMPs are written in C or C.sup.++, in order to convert the DMPs into the executable forms, the DMPs are to be compiled or linked. However, when the executable codes obtained by compiling or linking the DMPs in the manager systems M1, M2 and M3 are transmitted to the agent system 3601, in the case that the manager systems M1, M2 and M3 are different from the agent system 3601 in their architecture, the agent system cannot execute the commands. Hence, the manager systems M1, M2 and M3 must transmit the source codes written in C or C.sup.++ to the agent system 3601.
The seventh problem is that the agent system 3601 cannot flexibly deal with the managing lines of the management sites. The reason is as follows. That is, the DMPs transmitted from the manager systems M1, M2 and M3 are executed soon after compiling or linking in the agent system 3601. There are only two DMPI information such as "the initiated time of the DMPIs" and "the present states of the DMPIs", and there is no command for the supervisor to obtain this information.
The eighth problem is that the agent system 3601 cannot judge whether or not to access depending on the manager systems M1, M2 and M3. This is because an access control system permits the managed object resource controllers C01, C02 and C03 to access only to the attributes of the managed object resources 01, 02 and 03 opened by the managed object resource controllers C01, C02 and C03 in the agent system 3601.